O Objetivo 🎯
- O Modelo: Uma rede social simples.
- Os usuários são representados como nós em um grafo.
- As amizades são arestas não direcionadas.
- A Tarefa: Processar uma série de comandos para construir e consultar a rede.
A Representação 💾
Vamos usar uma Lista de Adjacência para armazenar o grafo.
É um array de listas. A lista no índice `i` armazena todos os amigos do usuário `i`.
// Amizades: (0,1), (0,2), (1,2)
adj = [
0:[1, 2],
1:[0, 2],
2:[0, 1],
3:[]
]
adj = [
0:[1, 2],
1:[0, 2],
2:[0, 1],
3:[]
]
As Operações ⚙️
Você implementará quatro comandos:
add u vAdicionar uma amizade.
degree uContar os amigos do usuário u.
isfriend u vVerificar se u e v são amigos.
count_greater xContar usuários com mais de x amigos.